﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Gruppe1OOPEksamen {

    class IndbygningsOvn : Elovn, ISmileyKontrol {
        private bool _renseFunktion;

        public bool RenseFunktion { 
            get {
                return _renseFunktion;
            }
            set {
                _renseFunktion = value;
                SmileyKontrol();
            }
        }
        private List<String> Tilbehør = new List<String>();

        #region constructors
        public IndbygningsOvn(  double højdeInd,
                                double længdeInd, 
                                double breddeInd, 
                                double volumenInd, 
                                double energiForbrugInd, 
                                string navnInd, 
                                double prisInd, 
                                bool renseFunktionInd) 

                : base(højdeInd, længdeInd, breddeInd, volumenInd, energiForbrugInd, navnInd, prisInd) {
                    RenseFunktion = renseFunktionInd;
        }
        #endregion

        public override void SmileyKontrol() {
            if (RenseFunktion) Smiley = "Glad";
            else Smiley = "Ligeglad";
        }

        public void TilføjTilbehør(string atTilføje) {
            Tilbehør.Add(atTilføje);
        }

        public bool FjernTilbehør(string atFjerne) {
            return Tilbehør.Remove(atFjerne);
        }

        public override string ToString() {
            string toReturn = "";
            
            toReturn += base.ToString();
            //tilføj Rensefunktion
            toReturn += "\nRensefunktion: " + (RenseFunktion == true ? "Ja" : "Nej");
            //tilføj Smiley
            toReturn += "\nSmiley: " + Smiley;
            //tilføj Tilbehør
            foreach (string tilbehørtæller in Tilbehør) toReturn += "\nTilbehør: " + tilbehørtæller;
            
            return toReturn;
        }
    }
}
